// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境

// 云函数入口函数
exports.main = async (event) => {
  const {nickname, avatarUrl} = event
  const wxContext = cloud.getWXContext()

  const db = cloud.database()
  const _ = db.command
  const todos = db.collection('userInfo')

  const isLogin = await todos.where({
    openid: wxContext.OPENID
  }).get()

  if(isLogin.data.length > 0){
    // 获取数据记录id
    const todoItem = isLogin.data[0]
    const todoId = todoItem._id

    // 通过id更新数据
    await todos.doc(todoId).update({
      data: {
        nickname,
        avatarUrl,
        creatTime: new Date().getTime()
      }
    })

    // 获取更新后的数据
    const newTodos = await todos.where({openid: wxContext.OPENID}).get()
    
    return newTodos.data[0]
  }
  // 向数据库追加数据
  await todos.add({
    data: {
      nickname,
      avatarUrl,
      openid: wxContext.OPENID,
      creatTime: new Date().getTime()
    }
  })
  // 获取更新后的数据
  const newData = await todos.where({openid: wxContext.OPENID}).get()

  return newData.data[0]
}